Remote control method of external devices

ABSTRACT

A method of controlling a plurality of external devices is performed on a computer which is set up with a plurality of remote control processes corresponding to the plurality of the external devices, and a management process for managing the remote control processes while communicating with the remote control processes. The management process is called to display icons corresponding to the remote control processes in a display field provided by the management process. Further, the management process acts when a specified operation is applied to one of the icons on the display field for sending a screen open instruction to one of the remote control processes corresponding to the icon to which the specified operation is applied. The remote control process which receives the screen open instruction is activated to display a control screen for use in remotely controlling the corresponding external device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a division of U.S. patent application Ser. No.11/030,830, filed Jan. 7, 2005, the entire disclosure of which isincorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to a method, an apparatus, and a programfor controlling external devices, more specifically and preferably, forremotely controlling mixers, sound modules, and the like.

2. Related Art

The music software such as a sequencer can be installed in personalcomputers and the like, and can transmit a MIDI signal to external soundmodule apparatuses and the like. An external sound module apparatussynthesizes a musical sound signal based on the MIDI signal. Thesynthesized musical sound signal is mixed with other audio signals via amixer and the like. A mixing result is recorded on a recordingapparatus. According to this form of operations, it is convenient toenable the personal computer to remotely control various externaldevices such as the sound module, the mixer, and the like. Variousexternal device manufacturers provide the remote control software toenable personal computers to control these external devices. Such atechnology is disclosed for example in Instruction manual for StudioManager for DM2000 V1.1, YAMAHA CORPORATION, January 2002.

The remote control software secures a separate memory area (calledparameter memory) in the memory space of the personal computer. Thesecured memory area is treated as a memory devoted to an external deviceto be controlled. The remote control software has a setup windowdisplaying images that simulate a monitor screen and an operation panelon the external device. Using a mouse and the like, a user can operategraphic controls displayed on the operation panel image. Based on theoperation result, the software updates corresponding operationparameters in the parameter memory. Of the external device operations,the personal computer emulates operations related to editing ofparameter values in the memory. The personal computer and the externaldevice interchanges updated contents of the operation parameters tomaintain the consistency of the operation parameters between thecomputer and the external device.

The remote control software can save the current operation parameters asa “setup file” in a recording medium such as a hard disk. The remotecontrol software can load the previously stored “setup file” toreproduce the past state of the external device. When theabove-mentioned music software has the plug-in function, the remotecontrol software for controlling external devices can be installed asplug-ins of the music software. In this case, the music software's menuscreen can be used to open a parameter edit screen for each remotecontrol software.

In a first view of the prior art, the above-mentioned technology canallow a personal computer to install many pieces of remote controlsoftware that can be plugged in the music software. Consequently, themusic software's menu screen lists many pieces of remote controlsoftware. In many cases, only a part of these software modules areactually needed for specific situations. If all the plugged-in remotecontrol software modules are displayed for choices, it is inconvenientto select necessary ones. Further, if the same remote control softwareis used to control a plurality of external devices of the same type, theremote control setting must be changed for each of the devices. It hasbeen impossible to concurrently control the same type of the externaldevices.

According to the above-mentioned technology, operation parameters needto be individually loaded or saved for each of the remote controlsoftware. It has been impossible to load or save operation parameters atonce for a plurality of remote control software for the followingreason. Let us consider that a particular software is activated to setnecessary operation parameters for an external device, and then theremote control software's setup window is closed. Closing the setupwindow frees the parameter memory for the remote control software.

When a plurality of external devices are used simultaneously, they areprovided with operation parameters whose setup states are ofteninterrelated with each other. For example, an output signal of onedevice is often used as an input signal of another device. A pluralityof devices often share resources such as a MIDI port. In these cases, aplurality of setup files applied to these devices must be used as “oneset” at the same time. According to the above-mentioned technology,however, users must manage combinations of the setup files. Themanagement has been very complicated.

In a second view of the prior art, when operation parameters are loadedfrom the setup file to the remote control software, a synchronizationoperation needs to be performed to secure the consistency between thecontent of the parameter memory in the personal computer and the contentof the other parameter memory provided in the external device. Thesynchronization operation may be available in two modes. One is to “copyparameters from the external device to the personal computer”. The otheris to “copy parameters from the personal computer to the externaldevice”. For this reason, a user needs to initiate the synchronizationoperation by specifying the synchronization direction for each of remotecontrol software, making user operations complicated.

When synchronization operations are performed for a plurality of remotecontrol software, a certain amount of time is required until all thesynchronization operations are complete. During this wait time, it hasbeen difficult for a user to determine whether or not thesynchronization operation is complete for each external device, and tograsp how fur the synchronization progresses with respect to an externaldevice for which the synchronization operation is not yet completed.There is a demand that the synchronization operation should be canceledfor some of the external devices depending on the synchronizationprogress. When the synchronization operation is performed for aplurality of external devices, the synchronization may need to becompleted for some devices prior to others.

In a third view of the prior art, the personal computer can generallyprovides a capability of hieratical plug-ins of the software. Forexample, it is possible to plug a second software in a first software(music software) and further plug a third software in the secondsoftware. In such case, there is no direct plug-in relationship betweenthe first and third software. It has been difficult to performinter-process communication between the first and third software.

When the third software is the remote control software for externaldevices, for example, the first software such as music applicationsoftware cannot instruct the third software to display the setup window,conventionally. The remote control software generally controls externaldevices via a MIDI port. The first software cannot assign a control MIDIport and the like to the remote control software, conventionally.Likewise, the first software cannot be notified of a MIDI port used bythe remote control software, conventionally.

SUMMARY OF THE INVENTION

The present invention has been made in consideration of the foregoing.It is therefore a first object of the present invention to provide amethod, an apparatus, and a program for controlling external devices soas to easily manage associated remote control software. It is a secondobject of the present invention to provide a method, an apparatus, and aprogram for controlling external devices capable of easily and fastperforming processes for a plurality of external devices. It is a thirdobject of the present invention to provide a method, an apparatus, and aprogram for controlling external devices capable of operating associatedsoftware in cooperation with each other.

To solve the above-mentioned problems and to achieve the above-notedobjects of the invention, the present invention is characterized byhaving the following constitutions.

In a first aspect of the invention, a method of controlling a pluralityof external devices is performed on a computer which is set up with aplurality of remote control processes corresponding to the plurality ofthe external devices, and a management process for managing the remotecontrol processes while communicating with the remote control processes.The method comprises the steps of: using the management process todisplay icons corresponding to the remote control processes in a displayfield provided by the management process; using the management processwhen a specified operation is applied to one of the icons on the displayfield, for sending a screen open instruction to one of the remotecontrol processes corresponding to the icon to which the specifiedoperation is applied; and using the remote control process whichreceives the screen open instruction to display a control screen for usein remotely controlling the corresponding external device.

Another inventive method of controlling a plurality of external devicesis performed on a computer which is set up with a plurality of remotecontrol processes corresponding to the plurality of the externaldevices, and a management process for managing the remote controlprocesses while communicating with the remote control processes. Theinventive method comprises the steps of: activating the managementprocess to display icons corresponding to the remote control processesin a display field provided by the management process for remotelycontrolling the external devices; allowing the management process when asave instruction operation is detected, for collecting first parametersrepresenting current states of the external devices from the respectiveremote control processes corresponding to the icons displayed on thedisplay field; and combining second parameters representing a currentstate of the management process with the collected first parameters ofthe external devices to produce a setup file, and saving the setup fileon a recording medium.

A still another inventive method of controlling a plurality of externaldevices is performed on a computer which is set up with a plurality ofremote control processes corresponding to the plurality of the externaldevices, and a management process for managing the remote controlprocesses while communicating with the remote control processes. Theinventive method comprises the steps of: activating the managementprocess when a load instruction operation is detected, for reading asetup file containing parameters defining states of the externaldevices; initiating the remote control processes corresponding to theexternal devices whose parameters are contained in the read setup file;supplying the initiated remote control processes with the parameterscontained in the read setup file for controlling the correspondingexternal devices; and allowing the management process to display iconscorresponding to the initiated remote control processes in a displayfield provided by the management process.

Preferably, these inventive methods further comprises the steps of:first allowing the management process to register a remote controlprocess corresponding to an external device which should be managed bythe management process, the remote control process being set up on thecomputer based on a remote control program installed in the computer;and second allowing the management process to display an iconcorresponding to the registered remote control process in the displayfield provided by the management process.

Preferably, the step of first allowing can register two or more remotecontrol processes for remotely controlling two or more external devicesof the same type independently from each other, each of the two or moreremote control processes being set up on the computer separately fromeach other based on the same remote control program installed in thecomputer.

The first aspect of the invention includes an apparatus capable ofperforming these inventive methods of controlling external devices.

The first aspect of the invention also includes a program for use in anapparatus having a processor, the program being executable by theprocessor for causing the apparatus to perform these inventive methodsof controlling external devices.

In a second aspect of the invention, a method of remotely controlling aplurality of external devices is performed on a computer which is set upwith a plurality of remote control processes corresponding to theplurality of the external devices, and a management process for managingthe remote control processes while communicating with the remote controlprocesses, each remote control process being allocated with a parametermemory area for storing a configuration state of the correspondingexternal device. The inventive method comprises: a synchronizationinstruction step of allowing the management process to send asynchronization instruction simultaneously to the respective remotecontrol processes; and a total recall synchronization step of allowingthe respective remote control processes to perform a synchronizationoperation in parallel to each other based on the synchronizationinstruction so as to synchronize the configuration state stored in eachparameter memory area allocated to each remote control process and anactual state of the corresponding external device.

Preferably, the inventive method further comprises a synchronizationdirection instruction step of selecting and specifying either a firstsynchronization direction of adjusting the actual state of the externaldevice to the configuration state stored in the parameter memory area ofthe corresponding remote control process or a second synchronizationdirection of adjusting the configuration state stored in the parametermemory area of the remote control process to the actual state of thecorresponding external device, so that the total recall synchronizationstep causes the respective remote control processes to perform thesynchronization operation in the same synchronization direction asselected and specified by the synchronization direction instructionstep.

Preferably, the inventive method further comprises a synchronizationavailability determination step of determining individually whether ornot each of the remote control processes performs the synchronizationoperation in the total recall synchronization step.

Preferably in these inventive methods, each of the parameter memoryareas of the remote control processes stores the configuration state ofthe corresponding external device in the form of various parameterswhich are divided into a number of groups. In such a case, theseinventive methods further comprise a synchronization group setup step ofallowing each remote control process to select and set one or more ofthe groups of the parameters subjected to the synchronization operationin the total recall synchronization step.

Preferably, the inventive methods further comprises a total recallsynchronization confirmation step of displaying confirmation informationbefore commencing the total recall synchronization step, theconfirmation information indicating the remote control processes whichhave been determined by the synchronization availability determinationstep to perform the synchronization operation in the total recallsynchronization step.

Preferably in the inventive method, the total recall synchronizationstep includes: a step of allowing the remote control processes to notifythe management process of a progress of each synchronization operationperformed by the respective remote control processes; and a list screendisplay step of allowing the management process to display a list screenshowing the progresses of the synchronization operations performed bythe respective remote control processes during the total recallsynchronization step.

Preferably in the inventive method, the total recall synchronizationstep comprises the steps of: enabling the management process to detect astop operation applied to a particular one of the remote controlprocesses; sending a stop instruction to the particular remote controlprocess in response to the detected stop operation; and causing theparticular remote control process to receive the stop instruction and tostop the synchronization operation.

Further preferably, the inventive method comprises: a step ofprioritizing at least one of the plurality of the remote controlprocesses; and a prioritized synchronization step of enabling theprioritized remote control process to perform the synchronizationoperation prior to the total recall synchronization step, so that thetotal recall synchronization step is conducted for the remaining remotecontrol processes after termination of the prioritized synchronizationstep.

The second aspect of the invention includes an apparatus capable ofperforming these inventive methods of controlling external devices.

The second aspect of the invention also includes a program for use in anapparatus having a processor, the program being executable by theprocessor for causing the apparatus to perform these inventive methodsof controlling external devices.

In a third aspect of the invention, a method of controlling a pluralityof external devices is performed on a computer which is set up with aplurality of remote control processes corresponding to the plurality ofthe external devices, a management process for managing the remotecontrol processes while communicating with the remote control processesand an application process for conducting an application work using theexternal devices while communicating with the management process. In theinventive method, the application process performs: a first display stepof displaying a screen of the application work provided with a pluralityof graphic controls corresponding to the plurality of the externaldevices; and a step of sending an issuance request instruction to themanagement process when an operation is applied to one of the graphiccontrols provided in the screen of the application work. The managementprocess performs: a step of issuing a display instruction in response tothe issuance request instruction from the application process; and astep of sending the issued display instruction to one of the remotecontrol processes corresponding to the graphic control to which theoperation is applied. Said one remote control process performs: a stepof receiving the display instruction sent from the management process;and a second display step of displaying a remote operation screen inresponse to the display instruction for use in remote control of thecorresponding external device.

Another inventive method of controlling a plurality of external devicesis performed on a computer which is set up with a plurality of remotecontrol processes corresponding to the plurality of the externaldevices, a management process for managing the remote control processeswhile communicating with the remote control processes and an applicationprocess for conducting an application work with allocating resources tothe remote control processes while communicating with the managementprocess. In the inventive method, the management process performs thesteps of: receiving information indicating a first group of resourceswhich are available for the application work from the applicationprocess; holding a second group of resources among the first group ofthe resources for use in the remote control processes managed by themanagement process; notifying the respective remote control processes ofinformation indicating a third group of resource(s) which is included inthe second group of the resources but which excludes resources alreadyused by the respective remote control processes, hence the third groupof the resource(s) includes one or more resources allocatable to therespective remote control processes; and receiving informationindicating a fourth group of resource(s) containing one or more ofallocated resources from the respective remote control processes.

Still another inventive method of controlling a plurality of externaldevices is performed on a computer which is set up with a plurality ofremote control processes corresponding to the plurality of the externaldevices, a management process for managing the remote control processeswhile communicating with the remote control processes and an applicationprocess for conducting at least a reproduction work of a music pieceusing resources while communicating with the management process. In theinventive method, the application process performs the steps of:allocating a resource to each of plural tracks of the music piece;outputting musical performance information reproduced from the pluraltracks of the music piece in accordance with the respective resourcesallocated to the respective tracks; receiving resource information fromthe management process, the resource information indicating a group ofresources used by the respective remote control processes; identifyingan external device in response to a request for displaying a remoteoperation screen of one track based on the resource allocated to saidone track and the resource information received from the managementprocess, the identified external device being supplied with the musicalperformance information reproduced from said one track in accordancewith the allocated resource; and sending an issuance request instructionto the management process for requesting an issuance of a displayinstruction to one remote control process corresponding to theidentified external device. The management process performs the stepsof: collecting the resource information from the respective remotecontrol processes, the resource information indicating the group of theresources used by the respective remote control processes; and issuingthe display instruction to said one remote control process in responseto the issuance request instruction. Said one remote control processperforms the step of: displaying a remote operation screen in responseto the display instruction from the management process, so that theexternal device corresponding to said one track can be remotelycontrolled on the displayed remote operation screen.

A further inventive method of controlling a plurality of externaldevices is performed on a computer which is set up with a plurality ofremote control processes corresponding to the plurality of the externaldevices, a management process for managing the remote control processeswhile communicating with the remote control processes and an applicationprocess for conducting an application work using the external deviceswhile communicating with the management process. In the inventivemethod, the application process performs a step of sending an issuancerequest instruction to the management process for requesting an issuanceof an operation instruction to one of the remote control processesmanaged by the management process. The management process performs astep of issuing the operation instruction in response to the issuancerequest instruction from the application process, and transferring theoperation instruction to said one remote control process, the operationinstruction specifying an operation to be performed by said one remotecontrol process. Said one remote control process performs the specifiedoperation in response to the operation instruction sent from themanagement process.

Preferably in the inventive method, the application process furtherperforms the steps of: sending a request instruction to the managementprocess when a save operation is detected for requesting stateinformation about a current state; combining data maintained in theapplication process with the information about the current statesupplied from the management process in response to the requestinstruction; and saving a setup file containing combined results of thedata of the application process and the information of the managementprocess. The management process further performs the steps of:collecting first parameters representing current states of the remotecontrol processes from the respective remote control processes inresponse to the request instruction from the application process; andcombining the collected first parameters with second parametersrepresenting a current state of the management process; and supplyingthe application process with combined results of the first and secondparameters as the information about the current state.

Preferably in the inventive method, the application process furtherperforms the steps of: reading a setup file when a load operation isdetected, the read setup file containing configuration data specifying astate of the management process and states of the remote controlprocesses; and supplying the management process with the configurationdata. The management process further performs the steps of: initiatingone or more of the remote control process associated with parametersdescribed in the configuration data; and supplying the initiated remotecontrol process with the parameters described in the configuration data.

Preferably, in the inventive method, the management process performs thestep of transferring the operation instruction specifying the operationincluding at least one of: a synchronization operation to synchronize acurrent state of said one remote control process with a current state ofthe corresponding external device controlled by said one remote controlprocess; and a display operation to display a remote operation screenfor use in remote control of the external device corresponding to saidone remote control process.

Preferably in these inventive methods, the remote control process isplugged in the management process so that the application processindirectly manages the remote control process through the intermediatemanagement process, or alternatively the remote control process may beplugged in the application process so that the application processdirectly manages the remote control process.

Preferably in these inventive methods, the management process performs astep of registering a remote control process managed by the managementprocess based on a remote control program installed in the computer.

The third aspect of the invention includes an apparatus capable ofperforming these inventive methods of controlling external devices.

The third aspect of the invention also includes a program for use in anapparatus having a processor, the program being executable by theprocessor for causing the apparatus to perform these inventive methodsof controlling external devices.

In this manner, according to the first aspect of the invention, themanagement process detects a specified operation for any of icons, andoutputs a screen open instruction to the corresponding remote controlprocess. According to this constitution, a user can select an intendedcontrol screen using icons corresponding to various remote controlprocesses. The displayed icons correspond to parameters contained in thesetup file. Accordingly, a user can easily determine the remote controlprocess parameter to be edited.

When detecting a specified save instruction operation, the managementprocess collects the first parameters from each remote control processand combines the collected first parameters with the second parametersfor saving. According to this constitution, all of the associatedparameters can be stored in one file for integrated management.

A plurality of remote control processes can be registered based on oneremote control program. This construction can simultaneously andparallel control the same type of a plurality of external devices ifconnected.

As mentioned above, according to the second aspect of the invention, themanagement process sends a specified synchronization instruction to eachremote control process. Based on the supplied synchronizationinstruction, the remote control processes perform synchronizationoperations to concurrently synchronize the states of the parametermemory areas managed by the remote control processes with the states ofthe external devices corresponding to the remote control processes.According to this constitution, the management process can easily andfast perform synchronization operations for a plurality of externaldevices.

According to the third aspect of the invention, in response to aspecified operation on the application process screen, it is possible toissue an instruction to a management process so as to allow a remotecontrol process managed by the management process to display the remoteoperation screen. This constitution makes it possible to instruct theremote control process to be displayed on the monitor from theapplication process screen.

The management process secures the second group of resources out of thefirst group of resources so that the second group of resources is usedfor remote control processes managed by the management process. Therespective remote control processes are notified of informationindicating a third group of resources which exclude resources alreadyused for the remote control processes among the second group ofresources. According to this construction, each remote control processcan select a resource to be used by the remote control process from thesecond group of resources collectively secured by the managementprocess. It is possible to decrease a communication amount between theremote control process and the application program. In addition, theremote control process can improve a response to resource setupprocedure.

The application process receives information indicating a group ofresources from the management process. An issuance request instructionis sent to the management process so as to issue a display instruction.According to this construction, the application process can obtain, fromthe management process, the information about resources used by remotecontrol processes managed by the management process.

The application process sends an issuance request instruction to themanagement process. In response to the issuance request instruction, themanagement process issues an operation instruction to the remote controlprocess. According to this constitution, the application process canallow the management process to perform a specified operation for aremote control process managed by that management process. Each remotecontrol process receives the same operation instruction as that receivedfrom the application process when the application process directlymanages the remote control process. The conventional remote controlprocess can be used as it is.

When detecting a save instruction operation, the application processsends a request instruction to the management process. According to thisconstitution, the application process can obtain the information aboutcurrent states from the management processes managing a plurality ofremote control processes in the same procedure when the applicationprocess directly manages a remote control process That is to say, withrespect to acquisition of the information about current states of theexternal devices, the application process need not be aware that themanagement process manages the plurality of remote control processes.

When detecting a load instruction operation, the application processreads one composite setup file containing setup data specifying statesof the management process and the plurality of remote control processes.The application process then supplies the management process with thesetup data. According to this constitution, the application process cansupply the setup data to the management process managing a plurality ofremote control processes in the same procedure when the applicationprocess directly manages a remote control processes. That is to say,with respect to the system configuration based on the setup data, theapplication process need not be aware that the management processmanages the plurality of remote control processes.

Further, the application process can directly manage each remote controlprocess. According to this constitution, the remote control processmanaged by the management process is the same as the remote controlprocess (remote control plug-in) managed by the ordinary applicationprocess. It is possible to effectively use already created programresources for plug-ins. In addition, a plurality of plug-ins can bemanaged collectively, which would be troublesome according to themanagement using a conventional application process.

Moreover, the management process can register a multiple of remotecontrol processes managed by the management process based on a commonremote control program installed in the computer. According to thisconstitution, it is possible to freely select remote control processescollectively managed by the management process based on the remotecontrol program stored in the storage of the computer.

BRIEF DESCRIPTION OF THE INVENTION

FIG. 1 is a line connection diagram of the music editing systemaccording to an embodiment of the present invention.

FIG. 2 is a block diagram of a personal computer used in the embodimentof the invention.

FIGS. 3( a) and 3(b) are diagrams showing a music software window.

FIGS. 4( a) through 4(d) are diagrams showing a workspace managementwindow.

FIGS. 5( a) and 5(b) are block diagrams showing a total configuration ofsoftware modules according to the embodiment.

FIG. 6 is a diagram showing a remote control plug-in panel window.

FIG. 7 is a diagram showing a workspace setup window.

FIG. 8 is a diagram showing a remote control plug-in setup window.

FIGS. 9( a), 9(b) and 9(c) are diagrams showing various windowsdisplayed during a synchronization operation.

FIGS. 10( a), 10(b) and 10(c) are flowcharts of various routinesexecuted by CPU.

FIGS. 11( a) and 11(b) are flowcharts of various routines executed byCPU.

DETAILED DESCRIPTION OF THE INVENTION 1. Hardware Configuration of anEmbodiment 1.1 Overall Configuration

The following describes the configuration of a music editing system asan embodiment of the present invention with reference to FIG. 1.

In FIG. 1, the reference numeral 100 denotes a PC/AT compatible personalcomputer and is provided with a USB port 102 and an IEEE1394 port 104.The IEEE1394 port 104 of the personal computer 100 is serially connectedwith IEEE1394 ports of a controller 156, a synthesizer 162, and a mixer168. These devices are compliant with the musical sound signal LAN(mLAN, registered trademark) proposed by the applicants. The musicalsound signal LAN uses connection lines based on the IEEE1394 standard tosend and receive MIDI signals, waveform data (audio data), controlsignals, and the like. A LAN patch bay 154 (to be described) controlslogical line connection between the devices to transmit these signals.

In this manner, musical sound signal LAN compatible devices caninterchange all the necessary signals with each other via the musicalsound signal LAN. If an incompatible device is included, anotherinterface is used to connect the devices to each other. The referencenumeral 152 denotes a USB hub and is connected to USB ports of asynthesizer 160, an effector 164, and a mixer 166 and intermediatescommunication between these devices. According to the embodiment, theUSB port 102 and the EEE1394 port 104 each constitute a MIDI portcomprising a plurality of channels. The personal computer 100interchanges MIDI signals with the other devices via these MIDI ports.

The controller 156 has: a LAN interface function to interchange MIDIsignals and waveform data with the other devices via the musical soundsignal LAN; a mixing function to mix waveform data; and a remote controlfunction to remotely control the music software executed on the personalcomputer 100. The controller 156 is provided with a display unit, manyoperation devices, and a signal input/output section to input and/oroutput MIDI signals, analog waveforms, and digital waveforms. Thecontroller 156 can convert MIDI signals and the like received via themusical sound signal LAN into an ordinary MIDI interface (an interfaceto send and receive MIDI signals via a MIDI cable). In this manner, itis possible to mediate between the musical sound signal LAN and devicesthat are incompatible with the musical sound signal LAN or the USBconnection. The synthesizer 158 is connected to the controller 156 via aMIDI cable. Accordingly, bidirectional communication is availablebetween the personal computer 100 and the synthesizer 158 via themusical sound signal LAN.

The synthesizers 158 and 160 synthesize musical sound signals that aresupplied to the mixer 166 via an analog cable. The mixer 166 outputsaudio signals for some channels to the effector 164. The effector 164applies effects to the audio signals and outputs them to the mixer 166.An analog cable is used between the mixer 166 and the effector 164 toinput and output audio signals. The mixers 166 and 168 arecascade-connected via a cascade cable. The cascading connection is aconnection between mixers by interchanging audio signals and controlsignals with each other. A plurality of mixers can operate as if theywere a single mixer having many input/output channels.

1.2 Configuration of the Personal Computer 100

The configuration of the personal computer 100 will be described withreference to FIG. 2. The reference numeral 2 denotes a communicationinterface and is provided with the USB port 102 and the IEEE1394 port104 as well as MIDI terminals (not shown). The reference numeral 4denotes an input device comprising a keyboard for text entry, a mouse,and the like. The reference numeral 6 denotes a performance operationdevice comprising a keyboard for musical performance and the like. Thereference numeral 8 denotes a display that displays various informationfor users. The reference numeral 10 denotes a CPU that controls theother components via a bus 16 based on a program to be described later.The reference numeral 12 denotes ROM that stores an initial programloader and the like.

The reference numeral 18 denotes a removable disk drive that reads orwrites data on a removable disk 20 such as CD-ROM, MO, and the like. Thereference numeral 22 denotes a waveform sampling interface that convertsanalog signals supplied from the outside into digital signals. Thereference numeral 24 denotes a hard disk that stores an operatingsystem, music software, performance information, waveform data, and thelike. The reference numeral 26 denotes a waveform output interface thatis supplied with digital musical sound signals via the bus 16 andconverts these signals into analog signals. The reference numeral 28denotes a sound system that generates the musical sound signals. Thereference numeral 30 denotes RAM used as work memory for the CPU 10. Inmany cases, ordinary personal computers are not provided with thekeyboard for musical performance.

2. Software Module Configuration of the Embodiment

The software module configuration of the embodiment will be describedwith reference to FIGS. 5( a) and 5(b).

The remote control software to control external devices is configured asa plug-in module (remote control plug-in) that is to be plugged in theother software. Conventionally, the remote control plug-in is directlyplugged in software such as the music software and controls theassociated external devices. In FIGS. 5( a) and 5(b), the referencenumerals 402, 404, and the like denote such types of remote controlplug-ins. When various plug-ins are used in the other software, programfiles for the plug-ins are generally stored in a specified folder of thepersonal computer 100. When activated, the other software to use theplug-ins checks the plug-in folder. The plug-ins detected in the plug-infolder are plugged in the other software.

In FIG. 5( a), the remote control plug-ins 402, 404, and the like areplugged in the software indicated as a workspace plug-in 410. Theworkspace plug-in 410 is further plugged in music software 420. Thesesoftware are initiated for different processes. FIG. 5( b) showsworkspace software 430 that can be initiated standalone and controlremote control plug-ins even when the music software 420 is inactive.

In the following description, the workspace plug-in 410 and thestandalone workspace software 430 are generically referred to as“workspace programs”. These workspace programs have functions to providesimilar control for each of the remote control plug-ins. However, theworkspace plug-in 410 has an additional function to communicate with themusic software 420 as mentioned above. There are setup states for theworkspace program and the other setup states for the remote controlplug-ins 402, 404, and the like plugged in the workspace program. Thesesetup states are generically referred to as “workspaces”.

In FIG. 5( a), the workspace plug-in 410 (management process module)intermediates communication between the music software (applicationprocess module) 420 and each of the remote control plug-ins (remotecontrol process module) 404, 404, and the like. The music software 420transmits an instruction for synchronization to the workspace plug-in410. The synchronization is to make correspondence between parametermemory contents for the remote control plug-ins 402, 404, and the likeand those for the corresponding external devices. At this time, theworkspace plug-in 410 transmits the synchronization instruction to eachof the remote control plug-ins 402, 404, and the like individually.

The music software 420 may transmit an inquiry about MIDI ports beingused to the workspace plug-in 410. The workspace plug-in 410 checks MIDIports used by the remote control plug-ins 402, 404, and the like, andreturns the result to the music software 420. Further, the musicsoftware 420 may transmit an instruction to the workspace plug-in 410 toopen a panel window for any of the remote control plug-ins. The panelwindow simulates an operation panel of the corresponding externaldevice. The workspace plug-in 410 transmits an instruction to thecorresponding remote control plug-in to display the corresponding panelwindow. According to this instruction, the corresponding remote controlplug-in opens the panel window.

As mentioned above, the workspace program and the remote controlplug-ins are initiated for different processes. The memory spaceallocated to a given remote control plug-in is completely independent ofthe memory space allocated to the workspace program. There may be apossibility where the workspace program and the remote control plug-insare initiated for different processes and share the memory space. Inthis case, the software independence is impaired, increasing thepossibility of causing bugs.

The following describes the interface between each of the remote controlplug-ins and the corresponding external device. The remote controlplug-in and the external device interchange the parameter memorycontents and the other control signals with each other. For thispurpose, the remote control plug-in needs to always ensure an input portfor control signals and an output port for control signals. Sincecontrol signals are sent and received in the form of MIDI signals, theinput/output ports correspond to the MIDI ports. It is known that the“MIDI” originally signifies an interface for sending and receiving themusical performance information. The embodiment uses the MIDI signalformat to send and receive control signals.

The external device may be a synthesizer or an equivalent device thatgenerates musical sound signals based on the musical performanceinformation. The remote control plug-in needs to transmit the musicalperformance information in its original meaning to the external deviceso as to generate the musical sound signals. In such case, another MIDIoutput port is assigned for musical performance information output.Likewise, the external device may transmit the musical performanceinformation in its original meaning to the remote control plug-in. Insuch case, another MIDI input port is assigned for musical performanceinformation input. In this manner, the remote control plug-in isassigned with at least “2” or up to “4” MIDI input/output ports forcommunication with the external device.

3. Operations of the Embodiment 3.1 Operations of the StandaloneWorkspace Software 430

When a specified operation is performed on the personal computer 100,the standalone workspace software 430 starts. The display 8 displays aworkspace management window 300 in FIG. 4( a). In the management window300, the reference numeral denotes a menu bar that displays a “File”button 302, a “Synchronize” button 304, and the like. The referencenumeral 310 denotes a field section that displays various icons 320through 334 as shown in FIG. 4( a). These icons are remote controlplug-in icons registered in the workspace. Nothing is displayed in thefield section 310 when no remote control plug-in is available at aninitial startup of the workspace software 430, for example.

3.1.1 Details of the “File” Menu

(1) Process when “Open” is Selected

When a user uses a mouse to left-click a “File” button 302, a “File”menu 352 is displayed as shown in FIG. 4( b). Selecting “Open” displaysa window to open files. The user can select a workspace setup file.Selecting an intended workspace setup file starts a workspace loadroutine as shown in FIG. 10( b). The “workspace setup file” here means afile that stores the workspace. A “registered plug-in” means a remotecontrol plug-in used for the workspace. A “current workspace” means aworkspace currently used for the active workspace software 430.

At step SP12 in FIG. 10( b), the process reads the contents of thespecified workspace from a hard disk 24 and the like. At step SP14, theprocess displays a management window 300 that displays nothing in afield section 310. The field section 310 should display icons for“started registered plug-ins”. Since no registered plug-in is active atthis time, the field section displays nothing. At step SP16, the processconfirms the MIDI port used for a registered plug-in included in thecurrent workspace. It may be preferable to display a warning indicationsuch as “necessary MIDI port unavailable” concerning the registeredplug-in whose MIDI port cannot be confirmed.

When the process proceeds to step SP18, the registered plug-ins becomesactive to be “resident” as another process different from the workspacesoftware 430. The field section 310 displays the icons 320 through 334for external devices associated with the activated registered plug-ins.Each registered plug-in has its specific memory space. When theworkspace software 430 needs to reference the content of the parametermemory included in the initiated remote control plug-in, the workspacesoftware 430 issues an instruction to the remote control plug-in toinquire about the content. In response to this, the remote controlplug-in returns the content to the workspace software 430. It may bepreferable to use the workspace setup file to include the informationwhether or not to activate the panel window for the registered plug-insand automatically activate the registered plug-in's panel window definedto be “activated” at this time. At step SP20, the process supplies thesetup state of each registered plug-in included in the current workspaceas a parameter to be specified for each activated registered plug-in. Ineach registered plug-in, the supplied parameter is written to theparameter memory of the registered plug-in.

At step SP22, the process determines whether or not “automatic totalrecall synchronization” is turned on in the current workspace. The“total recall synchronization” automatically synchronizes the content ofthe parameter memory in each external device with the content specifiedfor the current workspace. If the determination result is “NO”, theroutine process terminates immediately. If the determination result is“YES”, the process proceeds to step SP24. At this step, a total recallsynchronization process routine in FIG. 11( b) is called. The registeredplug-in targeted to the total recall synchronization starts a process totransmit parameters to the corresponding external device. It is possibleto configure each registered plug-in to be targeted to the total recallsynchronization. The configuration method will be described later indetail. In addition, the detail about the total recall synchronizationprocess routine will be described later.

(2) Process when “Setup” is Selected

Selecting “Setup” in the “File” menu 352 displays a workspace setupwindow 600 on the display 8. In FIG. 7, the reference numeral 610denotes a registrable plug-in display section that lists names of allremote control plug-ins installed in the personal computer. The personalcomputer's plug-in folder contains corresponding program files. Thereference numeral 620 denotes a registered plug-in display section thatlists names of registered plug-ins in the current workspace. Using themouse, a user can click to select one or more plug-ins displayed in thedisplay sections 610 and 620.

The reference numeral 612 denotes an Add button. Using the mouse,clicking the Add button 612 adds a plug-in selected in the registrableplug-in display section 610 to the registered plug-in display section620. When a plug-in is already displayed in the registered plug-indisplay section 620, selecting that plug-in and operating the Add button612 also adds the plug-in to the registered plug-in display section 620.At this time, the plug-in name is partially modified to be distinguishedfrom the already registered plug-ins. When “mixer (A)” is alreadyregistered, for example, further adding “mixer (A)” renames it to “mixer(A)-2”. It may be preferable to allow users to specify any names. Thereference numeral 614 denotes a Del button. Using the mouse, clickingthe Del button deletes a plug-in selected in the registered plug-indisplay section 620. These operations can be used to edit the registeredplug-ins in the current workspace as needed.

The reference numerals 616 and 618 denote priority specificationsections to specify registered plug-ins targeted to the total recallsynchronization. According to the configuration in FIG. 1, the LAN patchbay 154 is line connection control software that establishes logicaltransmission lines for MIDI signals and waveform data between devicesincluding the personal computer 100 connected to the musical soundsignal LAN. The LAN patch bay 154 is executed on the personal computer100. Control from the LAN patch bay 154 controls musical sound signalLAN interfaces for the devices and establishes logical transmissionlines on the musical sound signal LAN. The LAN patch bay 154 has afunction to create MIDI signal and waveform data ports for the otherdevices and needs to be configured prior to these devices. Accordingly,the LAN patch bay 154 is assigned the highest priority (1). Thecontroller is assigned the next highest priority (2) because it has afunction to remotely control the music software executed on the personalcomputer. The other devices are not assigned priorities. Priority (3)will be assigned next. The total recall synchronization may be executedwith priorities assigned to at least some of the registered plug-ins. Inthis case, the workspace program issues a synchronization instructionindividually to the prioritized registered plug-ins according to thepriorities. When completing the synchronization of a registered plug-inspecified for the synchronization, the workspace program issues thesynchronization instruction to another plug-in having the next priority.When completing all the prioritized registered plug-ins, the workspaceprogram issues the synchronization instruction to the other registeredplug-ins at a time.

The reference numeral 622 denotes a total recall synchronization checkbox. Using the mouse, clicking to check or uncheck this check box turnson or off the “automatic total recall synchronization” state (see stepSP22 of the workspace load routine (FIG. 10( b)). The reference numeral624 denotes a Set Default button. Using the mouse, clicking this buttonregisters a state of the current workspace to register the remotecontrol plug-ins as a default workspace. The default workspace is usedby default when the workspace program starts, for example. With thedefault workspace specified, the field section 310 displays icons basedon the default workspace when the workspace program starts withoutreading the workspace setup file or when the initiated workspace programcreates a new workspace.

The reference numeral 626 denotes a MIDI input port list box that listsMIDI ports currently available in the workspace (those not used for theother software). These MIDI ports can be selected from the MIDI inputports implemented by the USB port 102 or the IEEE1394 port 104 and theMIDI input port corresponding to the above-mentioned MIDI terminal. Thereference numeral 628 denotes a MIDI output port list box that listsMIDI output ports implemented by the USB port 102 or the IEEE1394 port104. These list boxes 626 and 628 can allow one or more MIDIinput/output ports to be selected and the selected MIDI input/outputports to be able to be allocated to the registered plug-ins.

The reference numeral 630 denotes an OK button. Using the mouse,clicking the OK button 630 updates the contents of the workspace asdefined in the workspace setup window 600 and closes this window. Thereference numeral 632 denotes a Cancel button. Using the mouse, clickingthe Cancel button 632 discards the edited contents and then closes theworkspace setup window 600.

(3) Process when “Save” is Selected

Selecting “Save” from the “File” menu 352 starts a workspace saveroutine as shown in FIG. 10( a). At step SP2 in FIG. 10( a), the processcollects parameter memory contents from the registered plug-ins. Whenthe registered plug-in is “online” as mentioned above, the parametermemory is updated based on ever-changing states of the external device.Accordingly, the parameter memory content collected by at step SP2corresponds to the current state of each external device. Specifically,at step SP2, the workspace program sends an inquiry to each registeredplug-in about parameter memory contents stored in the memory area. Inreturn, the workspace program receives the parameter memory contentsfrom each of the registered plug-ins.

At step SP4, the process combines the collected data with the workspaceprogram's parameter to generate data (workspace setup data) to bewritten to the setup file. The “workspace program's parameter” is aparameter that is specified in the workspace setup window. At step SP6,the generated data is overwritten to the setup file corresponding to thecurrent workspace.

(4) Other Processes

Selecting “Save As” from the “File” menu allows the display 8 to displaya window to enter a filename of a new setup file for recording thecurrent workspace. When the user specifies a filename, the filecorresponding to the specified filename is subject to a process similarto that when “Save” was selected. Selecting “Close” from the “File” menu352 closes the current workspace to assign the content of the defaultworkspace to the current workspace. Selecting “Quit” from the “File”menu 352 closes the workspace management window 300 to terminate theworkspace software 430. The user may select “Close” or “Quit” when thecurrent workspace content is not recorded in the setup file. In thiscase, the user is given a warning notifying the situation. The processtakes place as needed similarly when “Save” or “Save As” is selected.

3.1.2 Left-Double-Clicking on Icons

Using the mouse, the user can move the cursor to any one of the icons320 through 334, and then double-click the left mouse button(left-double-clicking). This operation outputs an instruction to displaythe panel window (e.g., a remote control plug-in panel window 500 inFIG. 6) for the remote control plug-in associated with the icon. As aresult, the corresponding remote control plug-in displays the panelwindow. The panel window can be used to control parameters and the likefor the corresponding external device. Processes for the panel window500 will be describe later in more detail.

3.1.3 Detail of the “Synchronize” Menu

Using the mouse, the user moves the cursor to the “Synchronize” buttonand then clicks the left mouse button (left-clicking) to display a“Synchronize” menu 354. At this time, selecting “Total Recall” starts atotal recall synchronization routine in FIG. 11( b). At step SP72 inFIG. 11( b), the display 8 displays a total recall synchronizationconfirmation window 720 in FIG. 9( b). In FIG. 9( b), the referencenumerals 722 and 724 denote radio buttons. Using the mouse, the user caneither of these radio buttons as a total recall synchronizationdirection, i.e., “To Hardware” (from the registered plug-in to theexternal device) or “From Hardware” (from the external device to theregistered plug-in).

The reference numeral 726 denotes a plug-in display section. The plug-indisplay section 726 enumerates names of one or more registered plug-insfor which the total recall synchronization is permitted, i.e.,registered plug-in names targeted for the total recall synchronization.Since the targeted plug-in names are displayed here, the user candetermine at a glance whether or not the total recall synchronization isperformed for the intended external device. The reference numeral 728denotes an OK button to start execution of the total recallsynchronization. The reference numeral 730 denotes a Cancel button tostop execution of the total recall synchronization.

Returning now to FIG. 11( b), at step SP74, the process waits until theuser uses the mouse to click the OK button 728 or the Cancel button 730.Clicking the Cancel button 730 stops the total recall synchronizationand immediately terminates the routine. Clicking the OK button 728advances the process to step SP76. The process selects the first plug-into be processed from the registered plug-ins listed in the workspace. Atstep SP78, the process determines whether or not the total recallsynchronization is permitted for the plug-in.

If the result is “NO”, the process proceeds to step SP86 to search forthe next registered plug-in in the list and determine whether or not therelevant plug-in is found. If the result is “YES”, the process proceedsto step SP88. The process specifies the retrieved plug-in to be the nextprocess target and returns to step SP78.

If the result is “YES” at step SP78, the process proceeds to step SP80to determine whether or not the personal computer 100 can communicatewith an external device associated with the registered plug-in.Specifically, a test signal is transmitted via the MIDI output portspecified by the registered plug-in. If a response signal returns viathe MIDI input port within a specified time, it is assumed to be“communicable”. If no response signal returns within the specified time,the result is assumed to be “NO” at step SP80. The process proceeds tostep SP84.

At this time, the display 8 displays a warning window showing a message“No hardware for synchronization” and the registered plug-in name forprocessing. The user can close this warning window. According to theroutine, however, the process proceeds to step SP86 when the warningwindow is displayed.

If the result is “YES” (communicable) at step SP80, the process proceedsto step SP82. The process then outputs an instruction to the registeredplug-in for processing to perform the synchronization with thecorresponding external device. The instruction includes the total recallsynchronization direction (“To Hardware” or “From Hardware”) specifiedby the radio button 722 or 724. The registered plug-in starts the datatransfer in the specified total recall synchronization direction.

After a loop of steps SP78 through SP86 is repeated for all theregistered plug-ins, the result is assumed to be “NO” at step SP86 andthe process proceeds to step SP90. At this time, the display 8 displaysa total recall synchronization progress display window 740 in FIG. 9(c). Inside the window 740, the reference numerals 741, 743, 745, and 747denote plug-in name display sections to display registered plug-in namestargeted for the total recall synchronization. The illustrated exampleshows that only “4” registered plug-ins are specified for the totalrecall synchronization.

When the registered plug-in is targeted for the total recallsynchronization, the registered plug-in allows the progress of thesynchronization to be kept track of. That is to say, the registeredplug-in calculates a ratio of the synchronized data amount to the entiredata amount targeted for the synchronization. Calculation results aresequentially reported to the workspace software 430. The referencenumerals 742, 744, 745, and 748 denote histograms that display theever-changing progress of the synchronization reported from theplug-ins. The reference numerals 752, 754, 756, and 758 denote Cancelbuttons provided to the plug-ins targeted for the total recallsynchronization. Mouse-clicking the Cancel button outputs an instructionto the corresponding registered plug-in to stop the synchronization.When identifying the instruction, the registered plug-in stops thesynchronization.

When a given registered plug-in completes the total recallsynchronization in progress, the workspace software 430 is notified ofthis. The corresponding registered plug-in changes to be “online”. The“online” state signifies realtime synchronization between the registeredplug-in and the corresponding external device. That is to say, anoperation on the personal computer 100 or the external device modifiesthe parameter memory in the registered plug-in or the external device.The modified content is transmitted to the other to keep both theparameter memory contents corresponding to each other. No registeredplug-in can change to be “online” until the synchronization is complete.The routine process terminates when the synchronization is completed forall the registered plug-ins.

3.1.4 Details of the Right-Click Menu on Icons

When the field section 310 displays icons, right-mouse clicking on anyof the icons displays an icon menu 360 in FIG. 4( d). Selecting “Open”displays the panel window (e.g., FIG. 6) for the remote control plug-inassociated with the corresponding icon as described in“Left-double-clicking on icons” above. Selecting “Close” from the iconmenu 360 closes the panel window.

Each time “TRecall Enable” is selected, the total recall synchronizationtoggles between the enabled state (a check mark displayed) and thedisabled state (no check mark displayed). The state selected heredetermines the result at step SP78 as mentioned above. Selecting“TRecall Data” displays a synchronization item selection window 362. Thewindow lists parameter group names stored in the parameter memory of thecorresponding registered plug-in. The user can select groups to besynchronized.

Selecting “Remove” removes the icon from the field section 310. Thecorresponding remote control plug-in is excluded from the registeredplug-ins. Selecting “Synchronize” starts an individual synchronizationroutine as shown in FIG. 11( a). At step SP52 in FIG. 11( a), thedisplay 8 displays an individual plug-in synchronization confirmationwindow 700. In FIG. 9( a), the reference numerals 702 and 704 denoteradio buttons corresponding to “To Hardware” and “From Hardware” assynchronization directions one of which can be selected. The referencenumeral 706 denotes a plug-in name display section that displays oneregistered plug-in to be synchronized. The reference numeral 708 denotesan OK button to start execution of the synchronization. The referencenumeral 710 denotes a Cancel button to stop execution of thesynchronization.

Returning now to FIG. 11( b), at step SP54, the process waits until theuser uses the mouse to click the OK button 708 or the Cancel button 710.Clicking the Cancel button 710 stops the synchronization and immediatelyterminates the routine. Clicking the OK button 708 advances the processto step SP56. Like the process at step SP80, it is determined whether ornot the personal computer 100 can communicate with an external deviceassociated with the registered plug-in.

If the communication is impossible, the process proceeds to step SP60.The display 8 displays a warning window similar to that displayed atstep SP84 above. If the result is “YES” (communicable) at step SP56, theprocess proceeds to step SP58. Like step SP82 above, the process outputsan instruction to the registered plug-in to perform the synchronizationwith the corresponding external device. The instruction includes thesynchronization direction specified by the radio button 702 or 704. Inthis manner, the routine process terminates. When the synchronization iscomplete for the registered plug-in thereafter, the registered plug-inchanges to be “online”.

3.2 Operations of the Remote Control Plug-in Panel Window 500 (FIG. 6)

As mentioned above, left-double-clicking on any of the icons 320 through334 displays the panel window of the remote control software for thecorresponding device. Operations of the panel window will be describedin detail according to an example of displaying the remote controlplug-in panel window 500 (FIG. 6) for the controller 156 correspondingto the icon 320. In FIG. 6, the reference numeral 510 denotes a menu barthat displays a “File” button 512, a “Synchronize” button 516, and thelike. The reference numeral 520 denotes a field section that displaysimages for level meters 522 and 524, a channel name display section 526,a rotary control 528, switches 530 and 532, and faders 534 and 536 asshown in FIG. 6.

The images displayed in the field 520 simulate the configuration of anoperation panel on the controller 156 as the corresponding externaldevice or an equivalent configuration of functions implemented by theoperation panel. When the registered plug-in is “online”, the controller156 notifies the personal computer 100 of the contents to be displayedon the level meters 522 and 524, and the like. Based on the receivedoperation contents, the registered plug-in updates the contents of itsparameter memory. When the switches, rotary controls, faders, and thelike are operated on the operation panel of the controller 156, theoperation contents are notified to the personal computer 100.

By contrast, using the mouse, the user can click or drag to operate therotary control 528, the switches 530 and 532, the faders 534 and 536,and the like in the field section 520. The operation contents arenotified to the controller 156. Based on the received operationcontents, the controller 156 updates the contents of its parametermemory. In this manner, the personal computer 100 or the controller 156notifies the other of the operation contents that are immediatelyreflected in the parameter memory of the notified side. The registeredplug-in and the controller 156 always maintain the same contents intheir parameter memories. Accordingly, the display contents of the fieldsection 520 match the states of the operation panel on the controller156.

3.2.1 Process when “Setup” is Selected from the “File” Menu

In the menu bar 510, left mouse clicking on the “File” button 512displays a “File” menu similar to the “File” menu 352 (FIG. 4( b)) inthe workspace management window 300 as mentioned above. Selecting“Setup” from the “File” menu allows the display 8 to display a remotecontrol plug-in setup window 650 as shown in FIG. 8. The referencenumerals 652 and 656 denote combo boxes for selecting MIDI input portsto input various control signals and the musical performanceinformation. These combo boxes allow selection of MIDI input ports forcontrol signals and the musical performance information from a pluralityof candidates.

Likewise, the reference numerals 654 and 658 denote combo boxes forselecting MIDI output ports to output various control signals and themusical performance information. These combo boxes allow selection ofMIDI output ports for control signals and the musical performanceinformation from a plurality of candidates. The workspace programnotifies the remote control plug-ins of MIDI input/output portcandidates to be displayed in the combo boxes 652 through 658.

As mentioned above, the workspace program allows a plurality of MIDIinput/output ports to be selected from a MIDI input port list box 626and a MIDI output port list box 628 (FIG. 7). The selected MIDIinput/output ports include those already allocated to the other remotecontrol plug-ins. The remaining MIDI input/output ports except theallocated ones are notified to the remote control plug-ins. In thismanner, the combo boxes 652 through 658 allow selection of the MIDIinput/output ports so as to avoid duplicates with the MIDI input/outputports for the other registered plug-ins.

The reference numeral 660 denotes an OK button. Mouse-clicking on the OKbutton 660 updates the MIDI input/output ports assigned to the remotecontrol plug-in as specified in the setup window 650, and then closesthe setup window 650. The reference numeral 662 denotes a Cancel button.Mouse-clicking on the Cancel button 662 discards the edit contents, andthen closes the setup window 650. The edit contents, i.e., the MIDIinput/output ports assigned to the remote control plug-in, are writtento the remote control plug-in's parameter memory. The workspace programissues an inquiry to each remote control plug-in to obtain theinformation about MIDI input/output ports assigned to the remote controlplug-in. The workspace program may be the workspace plug-in 410. In suchcase, the workspace plug-in 410 responds to a request from the musicsoftware 420 and notifies it of correspondence between each remotecontrol plug-in and the MIDI input/output ports.

3.2.2 Other Processes

Selecting “Open” from the “File” menu displays a window to open files.The user can select the setup file for the registered plug-in. The setupfile for plug-in has a format specific to the registered plug-in. Thisformat differs from that for the above-mentioned setup file forworkspace. The setup file for plug-in stores parameters only associatedwith the corresponding plug-in. When the setup file is selected,parameters defined in the setup file are overwritten to the parametermemory of the registered plug-in.

Like the operations on the workspace management window 300 as mentionedabove, selecting “Save” or “Save As” from the “File” menu stores thecontents of the plug-in's parameter memory in the setup file forplug-in. Selecting “Quit” from the “File” menu closes the panel window500. The corresponding registered plug-in itself is “resident” andcontinues to be active. When the registered plug-in is “online”, theparameter memory content is always maintained to correspond to theexternal device's state. When the panel window 500 is reopenedthereafter, the field section 520 and the like reflect the currentstate.

There has been described the configuration and operations of the remotecontrol plug-in panel window 500 for the controller 156. The remotecontrol plug-in panel window for the other external devices provides thesame configuration and operations for the menu bar 510 as those for theabove-mentioned panel window 500. It is to be distinctly understood thatthe contents of the field section 520 depend on the configuration of theoperation panel for each external device.

3.3 Operations of the Music Software

Performing specified operations on the personal computer 100 initiatesthe music software 420 capable of recording, playing, and editingsequence data comprising waveform data, MIDI data, and the like on aplurality of tracks independently. The display 8 displays a musicsoftware window 200 as shown in FIG. 3( a). In FIG. 3( a), the referencenumeral 210 denotes a menu bar that displays various menu buttons suchas a “File” button 211, a “Plugins” button 214, and the like. Thereference numeral 220 denotes a track display section comprising aplurality of “rows” divided into tracks of sequence data played back bythe music software 420. The reference numeral 222 denotes a start buttonsection comprising start buttons provided for the corresponding tracks.The start button is a kind of graphic control used to open the panelwindow of the external device (MIDI sound module, mixer, effector, andthe like) or the software (software synthesizer, software effector, andthe like) to be supplied with MIDI signals or waveform data played oneach track.

The music software 402 plays back sequence data that can include themusical performance information (MIDI data) and waveform data for eachof the tracks. The reference numeral 224 denotes a track type displaysection to display whether data for each track is waveform data (W) orMIDI data (M). The reference numeral 228 denotes a track name displaysection that displays a name (e.g., timbre name) assigned to each track.The reference numeral 230 denotes an output port display section thatdisplays an output port name assigned to each track. The output portsare resources of the system, and allocateble to external devicescorresponding to the tracks. The reference numeral 240 denotes a blockdisplay section that displays a block for each track. The blockindicates a range of sequence data comprising a MIDI signal or waveformdata along the abscissa as a time axis. The reference numeral 250denotes a recording/playback operation section comprising: buttons 254through 262 to record, play, fast-forward, rewind, and stop sequencedata; and a time code display section 252 to display a time code. Tostart recording, the user specifies one or more tracks ((M) and/or (W))to be recorded. The user moves a time axis cursor to a position to startrecording, operates the recording button 262 to wait for recording, andthen operates the start button 260 to start recording the specifiedtrack. To start playback, the user moves the time axis cursor to aposition to start playback, and then operates the start button 260 toplay back all the unmuted tracks. Operating the stop button 258 can stopthe recording or the playback in process.

When the workspace plug-in 410 is configured to be resident (active),initiating the music software 420 initiates the workspace plug-in 40 inthe “resident” state. Further, the registered plug-ins plugged in theworkspace plug-in 410 are also initiated in the “resident” state.According to the embodiment, the music software 420 initiates theplugged-in workspace plug-in 410. The workspace setup window 600 is usedto register any remote control plug-in. At this time, the workspaceplug-in 410 is automatically made resident (active). That is to say, itis assumed that the workspace plug-in 410 has registered plug-ins. Itmay be preferable that the user can select whether the music software420 should “use” or “not use” the workspace plug-in 410. In this case,the workspace plug-in 410 can be made resident when selected to be“used”. It is desirable that the selection is saved in a sequence datafile to be described later. Alternatively, after the music software 420initiates the workspace plug-in 410, it may be preferable to allow theworkspace plug-in to become “resident”.

3.3.1 Operations after Selecting the “Plugins” Button 214

Mouse-clicking the “Plugins” button 214 displays a plug-in menu 270 inFIG. 3( b). This menu lists names of various plug-in software (plug-inscorresponding to program files placed in the plug-in folder) plugged inthe music software 420. The plug-in menu 270 also lists the plug-insoftware such as “XG editor” and “DX editor” for the above-mentionedremote control plug-in. “WS manager” is the name of the above-mentionedworkspace plug-in 410.

The music software 420 is loaded with all the plug-in softwarecorresponding to the program files in the plug-in folder. The plug-inmenu 270 lists names of these plug-in software. The plug-in software aredirectly plugged in the music software 420 without mediation of theworkspace plug-in 410. Some of the plug-in software are registered tothe workspace plug-in 410 and the others are not.

When “WS manager” is selected from the plug-in menu 270, the selectionis notified to the workspace plug-in 410. The workspace plug-in 410displays the workspace management window 300 on the display 8.Operations in the management window 300 are the same as those for theabove-mentioned standalone workspace software 430. That is to say,various operations are available such as left-double-clicking on an icondisplayed in the field section 310, starting the panel window for theregistered plug-in corresponding to the icon, and the like.

When the music software 420 initiates the workspace plug-in 410, theworkspace plug-in 410 may issue a request. In response to the request,the music software 420 notifies the workspace plug-in 410 of availableMIDI input/output ports. This is because the personal computer 100provides available MIDI input/output ports some of which may be usedindependently of the workspace plug-in 410. For example, there may beavailable input/output ports used for the software directly plugged inthe music software 420. Accordingly, when the workspace plug-in 410displays the setup window 600, the MIDI input port list box 626 and theMIDI output port list box 628 list only the MIDI input/output portsnotified from the music software 420. The MIDI input/output ports areresources of the system allocateble to the external devices.

When the user selects a remote control plug-in directly plugged in themusic software from the plug-in menu 270, the music software initiatesthe corresponding plug-in. The display 8 displays the panel window,allowing the user to modify various settings.

3.3.2 Start Button Operations and Effects

When a start button belongs to the MIDI data (M) track in the startbutton section 222, mouse-clicking the start button initiates a startbutton operation event routine as shown in FIG. 10( c). The track playsback musical performance information that is output to a MIDI outputport. Based on this MIDI output port, at step SP32 in FIG. 10( c), theprocess detects the external device (MIDI sound module) or the software(software synthesizer) that uses the output port as an input source forthe musical performance information. When the remote control plug-in tobe used is directly plugged in the music software 420, the musicsoftware 420 issues an inquiry to the remote control plug-in and candetermine which MIDI output port is used to supply the musicalperformance information to the external device corresponding to theremote control plug-in. When the music software 420 uses the workspaceplug-in 410, the music software 420 issues an inquiry to the workspaceplug-in 410 and can determine which MIDI output port is used to supplythe musical performance information to the external device correspondingto each registered plug-in in the workspace. As mentioned above, theworkspace plug-in 410 can obtain the correspondence between eachregistered plug-in and the MIDI input/output port for musicalperformance information from the registered plug-ins. The workspaceplug-in 410 notifies the music software 420 of the obtainedcorrespondence information. When the software synthesizer is used as themusic software, each software synthesizer provides its special virtualMIDI port at startup. Therefore, the correspondence can be immediatelydetermined according to the output port. When the external device isdetected, the process determines the remote control plug-in thatcontrols the external device. When the software is detected, the processdetermines the corresponding software control plug-in.

A MIDI signal output from the MIDI output port may be supplied to MIDIdevices that are not compliant with remote control. Obviously, in suchcase, there is no corresponding plug-in. At step SP34, the processdetermines whether or not any remote control plug-in or software controlplug-in is retrieved based on the detection result at step SP32. If theresult is “NO”, the routine process terminates immediately.

If the result is “YES” at step SP34, the process proceeds to step SP36.It is determined whether or not the detected plug-in is a registeredplug-in belonging to the workspace plug-in 410. If the result is “YES”,the process proceeds to step SP40. The music software 420 issues aninstruction to the workspace plug-in 410 to output an instruction to theregistered plug-in so as to display the panel window. Based on thisprocess, the workspace plug-in 410 outputs an instruction to theregistered plug-in so as to display the panel window. The registeredplug-in displays the panel window on the display 8.

When the detected plug-in is directly plugged in the music software 420,the result at step SP36 is “NO”. The process proceeds to step SP38. Themusic software 420 outputs an instruction to the plug-in to display thepanel window. The plug-in displays the panel window on the display 8.

3.3.3 Details of the “File” Menu

(1) Process when “Open” is Selected

Left-mouse-clicking on the “File” button 211 displays the “File” menusimilar to that shown in FIG. 4( b) above. Selecting “Open” displays thewindow to open files. The user can select sequence data files formusical performance information and the like. When a given sequence datafile is selected, its content is read, enabling processes such asplayback of the musical performance information on therecording/playback operation section 250.

According to the embodiment, the sequence data file can contain“workspace setup data”. The content of workspace setup data is similarto the above-mentioned “workspace setup file”. When the sequence datafile is configured to allow the workspace plug-in to be active(resident), the sequence data file contains the workspace setup data.When the workspace setup data is contained, the workspace plug-in 410 isinitiated. The music software 426 supplies the workspace plug-in 410with the workspace setup data. When supplied with the workspace setupdata, the workspace plug-in 410 performs the process similar to theabove-mentioned workspace load routine (FIG. 10( b)).

That is to say, the supplied workspace setup data is read. The display 8displays the management window 300 with the field section 310 nothingdisplayed in it. The process then confirms the MIDI ports used for theremote control plug-ins contained in the workspace (SP16). The processinitiates the registered plug-ins as being “resident” and displays thecorresponding icons in the field section 310 (SP18). The process writesa parameter corresponding to the current workspace in the parametermemory of each registered plug-in (SP20). When the “automatic totalrecall synchronization” is enabled, the process starts a parametertransmission process for the corresponding external device (SP24).

(2) Process when “Save” is Selected

Let us consider that the music software 420 is configured to allow theworkspace plug-in 410 to be active (resident). When “Save” is selectedfrom the “File” menu corresponding to the “File” button 211, the musicsoftware 420 outputs an instruction to the workspace plug-in 410 tocollect the workspace state. As a result, the workspace plug-in 410performs a process similar to the above-mentioned workspace save routine(FIG. 10( a)). Issuing requests to the registered plug-ins to collectthe parameter memory contents from the registered plug-ins (SP2). Thecollected data is combined to the parameter of the workspace programitself to create the “workspace setup data” (SP4).

According to the example, the workspace setup data is generated based onthe instruction from the music software 420. In such case, the workspacesetup data can be supplied to the instruction-issuing software insteadof performing the process at step SP6 (writing data in the setup file).When supplied with the workspace setup data from the workspace plug-in410, the music software 420 combines the workspace setup data with thesequence data at the time. Data as the combination result is stored as asequence data file in the hard disk 24. The workspace plug-in 410 may beinitiated from the music software 420. Even in such case, the setup filefor the workspace plug-in 410 is capable of writing and readingindependently of the sequence data file for the music software 420.Accordingly, it is possible to move the setting of the workspace plug-in410 corresponding to a given sequence data file for the music software420 to another sequence data file.

4. Modifications

The present invention is not limited to the above-mentioned embodimentbut may be embodied in various modifications as follows.

(1) The embodiment performs various processes using the workspaceprogram, the application program, the remote control plug-in, and thelike operating on the personal computer. It is also possible todistribute these programs by means of not only storing them on recordingmedia such as CD-ROM and flexible disks, but also transmitting them viacommunication line.

(2) The embodiment performs the start button operation event routine(FIG. 10( c)) only in response to mouse-click on any start buttonbelonging to the MIDI data (M) track in the start button section 222.The similar process may be performed in response to mouse-click on astart button belonging to the waveform data (W) track.

(3) Different icons may be used for the external devices associated withthe registered plug-ins displayed in the field section 310 of theworkspace. Icons may be designed as not only shapes representing theexternal devices associated with the registered plug-ins, but alsologos, images, and the like. The “icons” are not limited to bit-mappedgraphics but may be simple boxes that contain product model numbers,trademarks, user-supplied names, and the like.

(4) According to the embodiment, the workspace software 430 determineswhether or not there is an external device to be synchronized during thetotal recall synchronization or the individual synchronization (SP80 orSP56). The workspace software 430 may periodically check theavailability of external devices and not check it during thesynchronization process. The workspace software 430 itself does notalways need to check the availability. The workspace software 430 mayissue an instruction to each registered plug-in and allow the registeredplug-in to check the availability of external devices under control.

(5) The LAN dedicated to musical sound signals can be implemented onnetworks other than the IEEE1394 standard. The musical sound signal LANmay be constructed on 100baseT Ethernet (registered trademark) accordingto a line connection as indicated by dotted lines in FIG. 1.Alternatively, a wireless LAN or a USB may be used to implement asimilar musical sound signal LAN.

1. A method of controlling a plurality of external devices, beingperformed on a computer which is set up with a plurality of remotecontrol processes corresponding to the plurality of the externaldevices, a management process for managing the remote control processeswhile communicating with the remote control processes and an applicationprocess for conducting an application work using the external deviceswhile communicating with the management process, wherein the applicationprocess performs a step of sending an issuance request instruction tothe management process, for requesting an issuance of an operationinstruction to one of the remote control processes managed by themanagement process, wherein the management process performs a step ofissuing the operation instruction in response to the issuance requestinstruction from the application process, and transferring the operationinstruction to said one remote control process, the operationinstruction specifying an operation to be performed by said one remotecontrol process, and wherein the said one remote control processperforms the specified operation in response to the operationinstruction sent from the management process.
 2. The method according toclaim 1, wherein the application process further performs the steps of:sending a request instruction to the management process when a saveoperation is detected for requesting state information about a currentstate; combining data maintained in the application process with theinformation about the current state supplied from the management processin response to the request instruction; and saving a setup filecontaining combined results of the data of the application process andthe information of the management process, wherein the managementprocess further performs the steps of: collecting first parametersrepresenting current states of the remote control processes from therespective remote control processes in response to the requestinstruction from the application process; and combining the collectedfirst parameters with second parameters representing a current state ofthe management process; and supplying the application process withcombined results of the first and second parameters as the informationabout the current state.
 3. The method according to claim 1, wherein theapplication process further performs the steps of: reading a setup filewhen a load operation is detected, the read setup file containingconfiguration data specifying a state of the management process andstates of the remote control processes; and supplying the managementprocess with the configuration data, and wherein the management processfurther performs the steps of: initiating one or more of the remotecontrol process associated with parameters described in theconfiguration data; and supplying the initiated remote control processwith the parameters described in the configuration data.
 4. The methodaccording to claim 1, wherein the management process performs the stepof transferring the operation instruction specifying the operationincluding at least one of: a synchronization operation to synchronize acurrent state of said one remote control process with a current state ofthe corresponding external device controlled by said one remote controlprocess; and a display operation to display a remote operation screenfor use in remote control of the external device corresponding to saidone remote control process.
 5. The method according to claim 1, whereinthe remote control process is plugged in the management process so thatthe application process indirectly manages the remote control processthrough an intermediate management process, or alternatively the remotecontrol process may be plugged in the application process so that theapplication process directly manages the remote control process.
 6. Themethod according to claim 1, wherein the management process performs astep of registering a remote control process managed by the managementprocess based on a remote control program installed in the computer. 7.A method of controlling a plurality of external devices, being performedon a computer which is set up with a plurality of remote controlprocesses corresponding to the plurality of the external devices, amanagement process for managing the remote control processes whilecommunicating with the remote control processes and an applicationprocess for conducting an application work using the external deviceswhile communicating with the management process, wherein the applicationprocess performs: a first display step of displaying a screen of theapplication work provided with a plurality of graphic controlscorresponding to the plurality of the external devices; and a step ofsending an issuance request instruction to the management process whenan operation is applied to one of the graphic controls provided in thescreen of the application work, wherein the management process performs:a step of issuing a display instruction in response to the issuancerequest instruction from the application process; and a step of sendingthe issued display instruction to one of the remote control processescorresponding to the graphic control to which the operation is applied,and wherein said one remote control process performs: a step ofreceiving the display instruction sent from the management process; anda second display step of displaying a remote operation screen inresponse to the display instruction for use in remote control of thecorresponding external device.
 8. The method according to claim 7,wherein the remote control process is plugged in the management processso that the application process indirectly manages the remote controlprocess through an intermediate management process, or alternatively theremote control process may be plugged in the application process so thatthe application process directly manages the remote control process. 9.The method according to claim 7, wherein the management process performsa step of registering a remote control process managed by the managementprocess based on a remote control program installed in the computer. 10.A method of controlling a plurality of external devices, being performedon a computer which is set up with a plurality of remote controlprocesses corresponding to the plurality of the external devices, amanagement process for managing the remote control processes whilecommunicating with the remote control processes and an applicationprocess for conducting an application work with allocating resources tothe remote control processes while communicating with the managementprocess, wherein the management process performs the steps of: receivingfirst information indicating a first group of resources which areavailable for the application work from the application process;reserving a second group of resources among the first group of theresources for use in the remote control processes managed by themanagement process; notifying one of the remote control processes ofsecond information indicating a third group of resource(s) which isincluded in the second group of the resources but not used by any of theremote control processes yet, the notified remote control processselecting one or more resources from among the third group of theresource(s) and reserving the one or more resources for use in thenotified remote control process; and receiving, from the notified remotecontrol process, third information indicating a fourth group ofresource(s) which is the rest of the third group of resource(s) afterthe notified remote control process reserves the one or more resourcesamong the third group of resource(s) to update the second information.11. The method according to claim 10, wherein the remote control processis plugged in the management process so that the application processindirectly manages the remote control process through an intermediatemanagement process, or alternatively the remote control process may beplugged in the application process so that the application processdirectly manages the remote control process.
 12. The method according toclaim 10, wherein the management process performs a step of registeringa remote control process managed by the management process based on aremote control program installed in the computer.
 13. A method ofcontrolling a plurality of external devices, being performed on acomputer which is set up with a plurality of remote control processescorresponding to the plurality of the external devices, a managementprocess for managing the remote control processes while communicatingwith the remote control processes and an application process forconducting at least a reproduction work of a music piece using resourceswhile communicating with the management process, the method comprising:the application process allocating a resource to each of plural tracksof the music piece; the application process outputting musicalperformance information reproduced from the plural tracks of the musicpiece utilizing the respective resources allocated to the respectivetracks; the management process collecting resource information from therespective remote control processes, the resource information indicatingthe group of the resources reserved by the respective remote controlprocesses; the application process receiving the resource informationfrom the management process, the resource information indicating a groupof resources used by the respective remote control processes; theapplication process, in response to a display request of a remoteoperation screen regarding to one of the tracks, identifying an externaldevice based on the resource allocated to the track and the resourceinformation received from the management process, the identifiedexternal device being supplied with the musical performance informationreproduced from the track utilizing the allocated resource; and theapplication process sending an issuance request instruction to themanagement process as regards to one remote control processcorresponding to the identified external device, the management processissuing the display instruction to said one remote control process inresponse to the issuance request instruction, and said one remotecontrol process displaying a remote operation screen in response to thedisplay instruction from the management process, so that the externaldevice corresponding to said one track can be remotely controlled on thedisplayed remote operation screen.
 14. The method according to claim 13,wherein the remote control process is plugged in the management processso that the application process indirectly manages the remote controlprocess through an intermediate management process, or alternatively theremote control process may be plugged in the application process so thatthe application process directly manages the remote control process. 15.The method according to claim 13, wherein the management processperforms a step of registering a remote control process managed by themanagement process based on a remote control program installed in thecomputer.
 16. An apparatus for controlling a plurality of externaldevices, comprising: a plurality of remote control modules correspondingto the plurality of the external devices; a management module formanaging the remote control modules while communicating with the remotecontrol modules, and an application module for conducting an applicationwork using the external devices while communicating with the managementmodule, wherein the application module sends an issuance requestinstruction to the management module for requesting an issuance of anoperation instruction to one of the remote control modules managed bythe management module, wherein the management module issues theoperation instruction in response to the issuance request instructionfrom the application module, and transfers the operation instruction tosaid one remote control module, the operation instruction specifying anoperation to be performed by said one remote control module, and whereinsaid one remote control module performs the specified operation inresponse to the operation instruction sent from the management module.17. An apparatus for controlling a plurality of external devices,comprising: a plurality of remote control modules corresponding to theplurality of the external devices; a management module for managing theremote control modules while communicating with the remote controlmodules; and an application module for conducting an application workusing the external devices while communicating with the managementmodule, wherein the application module displays a screen of theapplication work provided with a plurality of graphic controlscorresponding to the plurality of the external devices, and sends anissuance request instruction to the management module when an operationis applied to one of the graphic controls provided in the screen of theapplication work, wherein the management module issues a displayinstruction in response to the issuance request instruction from theapplication module, and sends the issued display instruction to one ofthe remote control modules corresponding to the graphic control to whichthe operation is applied, and wherein said one remote control modulereceives the display instruction sent from the management module, anddisplays a remote operation screen in response to the displayinstruction for use in remote control of the corresponding externaldevice.
 18. An apparatus for controlling a plurality of externaldevices, comprising: a plurality of remote control modules correspondingto the plurality of the external devices; a management module formanaging the remote control modules while communicating with the remotecontrol modules; and an application module for conducting an applicationwork with allocating resources to the remote control modules whilecommunicating with the management module, wherein the management modulereceives first information indicating a first group of resources whichare available for the application work from the application module, thenreserves a second group of resources among the first group of theresources for use in the remote control modules managed by themanagement module, then notifies one of the remote control modules ofsecond information indicating a third group of resource(s) which isincluded in the second group of the resources but not used by any of theremote control modules yet, the notified remote control module selectsone or more resources from among the third group of the resource(s) andreserves the one or more resources for use in the notified remotecontrol module, and thereafter receives, from the notified remotecontrol module, third information indicating a fourth group ofresource(s) which is the rest of the third group of resource(s) afterthe notified remote control module reserves the one or more resourcesamong the third group of resource(s) to update the second information.19. An apparatus for controlling a plurality of external devices,comprising: a plurality of remote control modules corresponding to theplurality of the external devices; a management module for managing theremote control modules while communicating with the remote controlmodules; and an application module for conducting at least areproduction work of a music piece using resources while communicatingwith the management module, wherein the application module allocates aresource to each of plural tracks of the music piece, then outputsmusical performance information reproduced from the plural tracks of themusic piece utilizing the respective resources allocated to therespective tracks, then receives resource information from themanagement module, the resource information indicating a group ofresources used by the respective remote control modules, then identifiesan external device in response to a display request of a remoteoperation screen regarding to one of the tracks based on the resourceallocated to the track and the resource information received from themanagement module, the identified external device being supplied withthe musical performance information reproduced from the track utilizingthe allocated resource, and sends an issuance request instruction to themanagement module as regards to one remote control module correspondingto the identified external device, wherein the management modulecollects the resource information from the respective remote controlmodules, the resource information indicating the group of the resourcesused by the respective remote control modules, and issues the displayinstruction to said one remote control module in response to theissuance request instruction, and wherein said one remote control moduledisplays a remote operation screen in response to the displayinstruction from the management module, so that the external devicecorresponding to said one track can be remotely controlled on thedisplayed remote operation screen.
 20. A program set for use incontrolling a plurality of external devices, the program set beinginstallable in a computer to set up therein a plurality of remotecontrol processes corresponding to the plurality of the externaldevices, a management process for managing the remote control processeswhile communicating with the remote control processes and an applicationprocess for conducting an application work using the external deviceswhile communicating with the management process, wherein the applicationprocess performs a step of sending an issuance request instruction tothe management process for requesting an issuance of an operationinstruction to one of the remote control processes managed by themanagement process, wherein the management process performs a step ofissuing the operation instruction in response to the issuance requestinstruction from the application process, and transferring the operationinstruction to said one remote control process, the operationinstruction specifying an operation to be performed by said one remotecontrol process, and wherein the said one remote control processperforms the specified operation in response to the operationinstruction sent from the management process.
 21. A program set for usein controlling a plurality of external devices, the program set beinginstallable in a computer to set up therein a plurality of remotecontrol processes corresponding to the plurality of the externaldevices, a management process for managing the remote control processeswhile communicating with the remote control processes and an applicationprocess for conducting an application work using the external deviceswhile communicating with the management process, wherein the applicationprocess performs: a first display step of displaying a screen of theapplication work provided with a plurality of graphic controlscorresponding to the plurality of the external devices; and a step ofsending an issuance request instruction to the management process whenan operation is applied to one of the graphic controls provided in thescreen of the application work, wherein the management process performs:a step of issuing a display instruction in response to the issuancerequest instruction from the application process; and a step of sendingthe issued display instruction to one of the remote control processescorresponding to the graphic control to which the operation is applied,and wherein said one remote control process performs: a step ofreceiving the display instruction sent from the management process; anda second display step of displaying a remote operation screen inresponse to the display instruction for use in remote control of thecorresponding external device.
 22. A program set for use in controllinga plurality of external devices, the program set being installable in acomputer to set up therein a plurality of remote control processescorresponding to the plurality of the external devices, a managementprocess for managing the remote control processes while communicatingwith the remote control processes and an application process forconducting an application work with allocating resources to the remotecontrol processes while communicating with the management process,wherein the management process performs the steps of: receiving firstinformation indicating a first group of resources which are availablefor the application work from the application process; reserving asecond group of resources among the first group of the resources for usein the remote control processes managed by the management process;notifying one of the remote control processes of second informationindicating a third group of resource(s) which is included in the secondgroup of the resources but not used by any of the remote controlprocesses yet, the notified remote control process selecting one or moreresources from among the third group of the resource(s) and reservingthe one or more resources for use in the notified remote controlprocess; and receiving, from the notified remote control process, thirdinformation indicating a fourth group of resource(s) which is the restof the third group of resource(s) after the notified remote controlprocess reserves the one or more resources among the third group ofresource(s) to update the second information.
 23. A program set for usein controlling a plurality of external devices, the program set beinginstallable in a computer to set up therein a plurality of remotecontrol processes corresponding to the plurality of the externaldevices, a management process for managing the remote control processeswhile communicating with the remote control processes and an applicationprocess for conducting at least a reproduction work of a music pieceusing resources while communicating with the management process, theapplication process allocating a resource to each of plural tracks ofthe music piece; the application process outputting musical performanceinformation reproduced from the plural tracks of the music pieceutilizing the respective resources allocated to the respective tracks;the management process collecting resource information from therespective remote control processes, the resource information indicatingthe group of the resources reserved by the respective remote controlprocesses; the application process receiving the resource informationfrom the management process, the resource information indicating a groupof resources used by the respective remote control processes; theapplication process, in response to a display request of a remoteoperation screen regarding to one of the tracks, identifying an externaldevice based on the resource allocated to the track and the resourceinformation received from the management process, the identifiedexternal device being supplied with the musical performance informationreproduced from the track utilizing the allocated resource; and theapplication process sending an issuance request instruction to themanagement process as regards to one remote control processcorresponding to the identified external device, the management processissuing the display instruction to said one remote control process inresponse to the issuance request instruction, and said one remotecontrol process displaying a remote operation screen in response to thedisplay instruction from the management process, so that the externaldevice corresponding to said one track can be remotely controlled on thedisplayed remote operation screen.